package com.vhall.component.service.rbac;

import com.vhall.component.entity.rbac.vo.*;

import java.util.List;

/**
 * @author dalong
 * @date 2021-05-10 18:09
 */
public interface RbacGroupService {

    /**
     * 获取分组信息
     *
     * @param groupId 分组ID
     * @param status  状态
     * @return
     */
    GroupVO getInfoByGroupIdStatus(Integer groupId, Integer status);

    /**
     * 创建组
     *
     * @param reqVO
     * @return
     */
    GroupVO create(GroupCreateReqVO reqVO);

    /**
     * 更新组
     *
     * @param reqVO
     * @return
     */
    boolean update(GroupUpdateReqVO reqVO);

    /**
     * 删除组
     *
     * @param reqVO
     * @return
     */
    boolean delete(GroupDeleteReqVO reqVO);

    /**
     * 获取应用的所有组列表
     *
     * @param appId
     * @return
     */
    List<GroupVO> getAppList(String appId);

    /**
     * 查询群组信息
     *
     * @param appId
     * @param groupId
     * @param status
     * @return
     */
    GroupVO getInfoByAppIdGroupIdStatus(String appId, Integer groupId, Integer status);

    /**
     * 获取分组信息
     *
     * @param reqVO
     * @return
     */
    List<GroupInfoRspVO> getListWithAccess(GroupInfoReqVO reqVO);
}
